1. The Field of the Invention
This invention relates generally to reducing motion artifacts and noise in video image processing, and more particularly, to a method and apparatus by which video images are filtered on a per pixel basis over time, from frame to frame.
2. The Background Art
It is known in the art to reduce noise in video images by filtering digital data (that represents each frame of the video images) with a temporal filter (also known as a "recursive filter"). A temporal filter can be realized through hardware or software, with hardware realizations commonly implementing multiplier or a look up table for holding the data representative of the gain coefficients of pixel difference values. Pixel difference values are the difference between a pixel value from one frame to the next, the pixel value being a set of bits from the digital data of one frame. A temporal filter performs noise reduction by operating on each single pixel in the frame or array, storing pixel values of each single pixel for each video frame over time, determining the difference between a pixel value of the pixel in the current or incoming frame and the pixel value of the pixel in the immediately previous or filtered fame, adding a portion of this difference value to the pixel value (dependent on the filter or gain coefficients) to the pixel value of the immediately previous or filtered frame to obtain a new filtered pixel value for each pixel in the frame, storing and displaying or outputting the new pixel value. The amount of the difference value added to the pixel value of the immediately previous frame is a fractional part of the difference value and is determined through operator choice. For example, an operator could select four frames of averaging which would cause the amount added to the pixel value of the immediately previous frame to be 0.25 (or 1/4) of the difference value. If an operator selects eight frames of averaging that would cause the amount added to the pixel value of the immediately previous frame to be 0.124 (or 1/8) of the difference value. Thus, the greater the averaging level applied, the smaller fraction of the difference value is added to the previous pixel value. In other words, temporal filtering is a running average of the incoming pixel values.
The drawback of simple temporal filters is that they are unable to distinguish between noise and motion in a live image, so filtering occurs whether the changes in pixel difference values are caused by undesirable noise or acceptable motion. When averaging occurs for pixel difference values created as a result of motion, the filtered video image has a smearing or blurring where the motion occurs. Thus, in an effort to reduce noise, temporal filters undesirably reduce the clarity of moving images.
In view of the foregoing, it would be desirable to provide a filter that adjusts the amount of filtering according to the amount of motion in the video image.